↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
LOG2_IN(X, Y) → U11(X, Y, log2_in(X, 0, Y))
LOG2_IN(X, Y) → LOG2_IN(X, 0, Y)
LOG2_IN(s(s(X)), I, Y) → U21(X, I, Y, half_in(s(s(X)), X1))
LOG2_IN(s(s(X)), I, Y) → HALF_IN(s(s(X)), X1)
HALF_IN(s(s(X)), s(Y)) → U41(X, Y, half_in(X, Y))
HALF_IN(s(s(X)), s(Y)) → HALF_IN(X, Y)
U21(X, I, Y, half_out(s(s(X)), X1)) → U31(X, I, Y, log2_in(X1, s(I), Y))
U21(X, I, Y, half_out(s(s(X)), X1)) → LOG2_IN(X1, s(I), Y)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
LOG2_IN(X, Y) → U11(X, Y, log2_in(X, 0, Y))
LOG2_IN(X, Y) → LOG2_IN(X, 0, Y)
LOG2_IN(s(s(X)), I, Y) → U21(X, I, Y, half_in(s(s(X)), X1))
LOG2_IN(s(s(X)), I, Y) → HALF_IN(s(s(X)), X1)
HALF_IN(s(s(X)), s(Y)) → U41(X, Y, half_in(X, Y))
HALF_IN(s(s(X)), s(Y)) → HALF_IN(X, Y)
U21(X, I, Y, half_out(s(s(X)), X1)) → U31(X, I, Y, log2_in(X1, s(I), Y))
U21(X, I, Y, half_out(s(s(X)), X1)) → LOG2_IN(X1, s(I), Y)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
HALF_IN(s(s(X)), s(Y)) → HALF_IN(X, Y)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
HALF_IN(s(s(X)), s(Y)) → HALF_IN(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PrologToPiTRSProof
HALF_IN → HALF_IN
HALF_IN → HALF_IN
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
LOG2_IN(s(s(X)), I, Y) → U21(X, I, Y, half_in(s(s(X)), X1))
U21(X, I, Y, half_out(s(s(X)), X1)) → LOG2_IN(X1, s(I), Y)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
LOG2_IN(s(s(X)), I, Y) → U21(X, I, Y, half_in(s(s(X)), X1))
U21(X, I, Y, half_out(s(s(X)), X1)) → LOG2_IN(X1, s(I), Y)
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
LOG2_IN(I, Y) → U21(I, Y, half_in)
U21(I, Y, half_out(s(s(X)), X1)) → LOG2_IN(s(I), Y)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
LOG2_IN(y0, y1) → U21(y0, y1, half_out(s(0), 0))
LOG2_IN(y0, y1) → U21(y0, y1, half_out(0, 0))
LOG2_IN(y0, y1) → U21(y0, y1, U4(half_in))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
LOG2_IN(y0, y1) → U21(y0, y1, half_out(s(0), 0))
LOG2_IN(y0, y1) → U21(y0, y1, half_out(0, 0))
LOG2_IN(y0, y1) → U21(y0, y1, U4(half_in))
U21(I, Y, half_out(s(s(X)), X1)) → LOG2_IN(s(I), Y)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
U21(I, Y, half_out(s(s(X)), X1)) → LOG2_IN(s(I), Y)
LOG2_IN(y0, y1) → U21(y0, y1, U4(half_in))
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
LOG2_IN(s(z0), z1) → U21(s(z0), z1, U4(half_in))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
LOG2_IN(s(z0), z1) → U21(s(z0), z1, U4(half_in))
U21(I, Y, half_out(s(s(X)), X1)) → LOG2_IN(s(I), Y)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
U21(s(z0), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(z0)), z1)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
U21(s(z0), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(z0)), z1)
LOG2_IN(s(z0), z1) → U21(s(z0), z1, U4(half_in))
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
LOG2_IN(s(s(z0)), z1) → U21(s(s(z0)), z1, U4(half_in))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
LOG2_IN(s(s(z0)), z1) → U21(s(s(z0)), z1, U4(half_in))
U21(s(z0), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(z0)), z1)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
U21(s(s(z0)), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(s(z0))), z1)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
LOG2_IN(s(s(z0)), z1) → U21(s(s(z0)), z1, U4(half_in))
U21(s(s(z0)), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(s(z0))), z1)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
LOG2_IN(s(s(z0)), z1) → U21(s(s(z0)), z1, U4(half_in))
U21(s(s(z0)), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(s(z0))), z1)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
LOG2_IN(X, Y) → U11(X, Y, log2_in(X, 0, Y))
LOG2_IN(X, Y) → LOG2_IN(X, 0, Y)
LOG2_IN(s(s(X)), I, Y) → U21(X, I, Y, half_in(s(s(X)), X1))
LOG2_IN(s(s(X)), I, Y) → HALF_IN(s(s(X)), X1)
HALF_IN(s(s(X)), s(Y)) → U41(X, Y, half_in(X, Y))
HALF_IN(s(s(X)), s(Y)) → HALF_IN(X, Y)
U21(X, I, Y, half_out(s(s(X)), X1)) → U31(X, I, Y, log2_in(X1, s(I), Y))
U21(X, I, Y, half_out(s(s(X)), X1)) → LOG2_IN(X1, s(I), Y)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
LOG2_IN(X, Y) → U11(X, Y, log2_in(X, 0, Y))
LOG2_IN(X, Y) → LOG2_IN(X, 0, Y)
LOG2_IN(s(s(X)), I, Y) → U21(X, I, Y, half_in(s(s(X)), X1))
LOG2_IN(s(s(X)), I, Y) → HALF_IN(s(s(X)), X1)
HALF_IN(s(s(X)), s(Y)) → U41(X, Y, half_in(X, Y))
HALF_IN(s(s(X)), s(Y)) → HALF_IN(X, Y)
U21(X, I, Y, half_out(s(s(X)), X1)) → U31(X, I, Y, log2_in(X1, s(I), Y))
U21(X, I, Y, half_out(s(s(X)), X1)) → LOG2_IN(X1, s(I), Y)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
HALF_IN(s(s(X)), s(Y)) → HALF_IN(X, Y)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
HALF_IN(s(s(X)), s(Y)) → HALF_IN(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
HALF_IN → HALF_IN
HALF_IN → HALF_IN
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
LOG2_IN(s(s(X)), I, Y) → U21(X, I, Y, half_in(s(s(X)), X1))
U21(X, I, Y, half_out(s(s(X)), X1)) → LOG2_IN(X1, s(I), Y)
log2_in(X, Y) → U1(X, Y, log2_in(X, 0, Y))
log2_in(s(s(X)), I, Y) → U2(X, I, Y, half_in(s(s(X)), X1))
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
U2(X, I, Y, half_out(s(s(X)), X1)) → U3(X, I, Y, log2_in(X1, s(I), Y))
log2_in(s(0), I, I) → log2_out(s(0), I, I)
log2_in(0, I, I) → log2_out(0, I, I)
U3(X, I, Y, log2_out(X1, s(I), Y)) → log2_out(s(s(X)), I, Y)
U1(X, Y, log2_out(X, 0, Y)) → log2_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
LOG2_IN(s(s(X)), I, Y) → U21(X, I, Y, half_in(s(s(X)), X1))
U21(X, I, Y, half_out(s(s(X)), X1)) → LOG2_IN(X1, s(I), Y)
half_in(s(s(X)), s(Y)) → U4(X, Y, half_in(X, Y))
U4(X, Y, half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in(s(0), 0) → half_out(s(0), 0)
half_in(0, 0) → half_out(0, 0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
LOG2_IN(I, Y) → U21(I, Y, half_in)
U21(I, Y, half_out(s(s(X)), X1)) → LOG2_IN(s(I), Y)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
LOG2_IN(y0, y1) → U21(y0, y1, half_out(s(0), 0))
LOG2_IN(y0, y1) → U21(y0, y1, half_out(0, 0))
LOG2_IN(y0, y1) → U21(y0, y1, U4(half_in))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
LOG2_IN(y0, y1) → U21(y0, y1, half_out(s(0), 0))
LOG2_IN(y0, y1) → U21(y0, y1, half_out(0, 0))
LOG2_IN(y0, y1) → U21(y0, y1, U4(half_in))
U21(I, Y, half_out(s(s(X)), X1)) → LOG2_IN(s(I), Y)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
U21(I, Y, half_out(s(s(X)), X1)) → LOG2_IN(s(I), Y)
LOG2_IN(y0, y1) → U21(y0, y1, U4(half_in))
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
LOG2_IN(s(z0), z1) → U21(s(z0), z1, U4(half_in))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
LOG2_IN(s(z0), z1) → U21(s(z0), z1, U4(half_in))
U21(I, Y, half_out(s(s(X)), X1)) → LOG2_IN(s(I), Y)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
U21(s(z0), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(z0)), z1)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
U21(s(z0), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(z0)), z1)
LOG2_IN(s(z0), z1) → U21(s(z0), z1, U4(half_in))
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
LOG2_IN(s(s(z0)), z1) → U21(s(s(z0)), z1, U4(half_in))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
LOG2_IN(s(s(z0)), z1) → U21(s(s(z0)), z1, U4(half_in))
U21(s(z0), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(z0)), z1)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
U21(s(s(z0)), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(s(z0))), z1)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
LOG2_IN(s(s(z0)), z1) → U21(s(s(z0)), z1, U4(half_in))
U21(s(s(z0)), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(s(z0))), z1)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)
half_in
U4(x0)
LOG2_IN(s(s(z0)), z1) → U21(s(s(z0)), z1, U4(half_in))
U21(s(s(z0)), z1, half_out(s(s(x2)), x3)) → LOG2_IN(s(s(s(z0))), z1)
half_in → U4(half_in)
U4(half_out(X, Y)) → half_out(s(s(X)), s(Y))
half_in → half_out(s(0), 0)
half_in → half_out(0, 0)